import request from '@/utils/request'
import store from '../store'

// 数据名称
const KEY = 'geek-client-mobile-channels'

// 获取所有频道
export function getAllChannels () {
  return request({
    url: '/v1_0/channels'
  })
}

/**
 * 获取我的频道
 */
export const getMyChannels = async () => {
  // return request({ url: '/v1_0/user/channels' })
  // 1.获取token数据，判断登录状态
  // 2.如果未登录，获取本地频道
  // 2.1获取到了 直接返回数据
  // 2.2没有获取 调用接口 得到数据 存储数据 返回数据
  // 3.如果已经登录 调用接口 得到数据 返回数据
  if (!store.state.user.token) {
    // 未登录
    // 获取本地数据，需要处理成 array 类型
    const locaData = JSON.parse(localStorage.getItem(KEY) || '[]')
    if (locaData.length) {
      // 存了数据
      return locaData
    } else {
      // 没存数据
      const [, res] = await request({ url: '/v1_0/user/channels' })
      // 存储数据
      localStorage.setItem(KEY, JSON.stringify(res.data.data.channels))
      return res.data.data.channels
    }
  } else {
    // 已经登录
    const [, res] = await request({ url: '/v1_0/user/channels' })
    return res.data.data.channels
  }
}
